home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok15
/
seafarers_manual
/
source
/
convertdec.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
1KB
|
52 lines
MODULE ConvertDec; (* Convert decimal number to octal or hex
using procedure variables *)
(* From the book "Modula-2 A Seafarer's Manual and Shipyard Guide" *)
(* Page 159 adapted "Amiga M2Modula-2" 10 Mar 1988 *)
FROM InOut IMPORT WriteLn,
WriteOct,
WriteHex,
WriteString,
ReadLongInt,
ReadString,
Read;
TYPE
DispProc = PROCEDURE (LONGINT, INTEGER);
VAR
outp : DispProc; (* procedure variable *)
InNum : LONGINT;
NILread : ARRAY [0..80] OF CHAR; (* dummy for wrong procedure Read *)
ch : CHAR;
PROCEDURE ShowAnswer (showproc : DispProc;
number : LONGINT);
BEGIN
WriteLn;
WriteString ("Converted result = ");
showproc (number,0);
WriteLn;
END ShowAnswer;
BEGIN
WriteLn;
WriteString ("Enter value to be converted: ");
ReadLongInt (InNum);
WriteLn;
WriteString ("Convert to hex? ");
Read (ch);
ReadString (NILread);
IF (CAP(ch) = "Y") THEN (* convert to hex? *)
outp := WriteHex; (* yes - use hex procedure *)
ELSE
outp := WriteOct; (* no - assume octal *)
END;
ShowAnswer (outp, InNum);
END ConvertDec.